NewSoftSerial
A New Software Serial Library for Arduino
News: NewSoftSerial is in the core! Starting with Arduino 1.0 (December, 2011), NewSoftSerial has replaced the old SoftwareSerial library as the officially supported software serial library. This means that if you have 1.0 or later, you should not download this library. To port your code to 1.0, simply change all NewSoftSerial references to SoftwareSerial.
NewSoftSerial is the latest of three Arduino libraries providing “soft” serial port support. It’s the direct descendant of ladyada’s AFSoftSerial, which introduced interrupt-driven receives – a dramatic improvement over the polling required by the native SoftwareSerial.
Without interrupts, your program’s design is considerably restricted, as it must continually poll the serial port at very short, regular intervals. This makes it nearly impossible, for example, to use SoftwareSerial to receive GPS data and parse it into a usable form. Your program is too busy trying to keep up with NMEA characters as they arrive to actually spend time assembling them into something meaningful. This is where AFSoftSerial’s (and NewSoftSerial‘s) interrupt architecture is a godsend. Using interrupt-driven RX, your program fills its buffer behind the scenes while processing previously received data.
Improvements
NewSoftSerial offers a number of improvements over SoftwareSerial:
- It inherits from built-in class
Print
, eliminating some 4-600 bytes of duplicate code - It implements circular buffering scheme to make RX processing more efficient
- It extends support to all Arduino pins 0-19 (0-21 on Arduino Mini), not just 0-13
- It supports multiple simultaneous soft serial devices.*
- It supports a much wider range of baud rates.**
- It provides a boolean overflow() method to detect buffer overflow.
- Higher baud rates have been tuned for better accuracy.
- It supports the ATMega328 and 168.
- It supports 8MHz processors.
- It uses direct port I/O for faster and more precise operation.
- (New with version 10). It supports software signal inversion.
- (New) It supports 20MHz processors.
- (New) It runs on the Teensy and Teensy++.
- (New) It supports an end() method as a complement to begin().
*But see below for an important caveat on multiple instances.
**Be circumspect about using 300 and 1200 baud though. The interrupt handler at these rate becomes so lengthy that timer tick interrupts can be starved, causing millis() to stop working during receives.
Using Multiple Instances
There has been considerable support for an library that would allow multiple soft serial devices. However, handling asynchronously received data from two, three, or four or more serial devices turns out to be an extremely difficult, if not intractable problem. Imagine four serial devices connected to an Arduino, each transmitting at 38,400 baud. As bits arrive, Arduino’s poor little processor must sample and process each of 4 incoming bits within 26 microseconds or else lose them forever. Yikes!
It occurred to me, though, that multiple instances could still be possible if the library user were willing to make a small concession. NewSoftSerial is written on the principle that you can have as many devices connected as resource constraints allow, as long as you only use one of them at a time. If you can organize your program code around this constraint, then NewSoftSerial may work for you.
What does this mean, exactly? Well, you have to use your serial devices serially, like this:
#include <NewSoftSerial.h> // Here's a GPS device connect to pins 3 and 4 NewSoftSerial gps(4,3); // A serial thermometer connected to 5 and 6 NewSoftSerial therm(6,5); // An LCD connected to 7 and 8 NewSoftSerial LCD(8,7); // serial LCD void loop() { ... // collect data from the GPS unit for a few seconds gps.listen(); read_gps_data(); // use gps as active device // collect temperature data from thermometer therm.listen(); read_thermometer_data(); // now use therm // LCD becomes the active device here LCD.listen(); LCD.print("Data gathered..."); ... }
In this example, we assume that read_gps_data()
uses the gps
object and read_thermometer_data()
uses the therm
object. Any time you call the listen() method, it becomes the “active” object, and the previously active object is deactivated and its RX buffer discarded. An important point here is that object.available()
always returns 0 unless object
is already active. This means that you can’t write code like this:
void loop() { device1.listen(); if (device1.available() > 0) { int c = device1.read(); ... } device2.listen(); if (device2.available() > 0) { int c = device2.read(); ... } }
This code will never do anything but activate one device after the other.
Signal Inversion
“Normal” TTL serial signaling defines a start bit as a transition from “high” to “low” logic. Logical 1 is “high”, 0 is “low”. But some serial devices turn this logic upside down, using what we call “inverted signaling”. As of version 10, NewSoftSerial supports these devices natively with a third parameter in the constructor.
NewSoftSerial myInvertedConn(7, 5, true); // this device uses inverted signaling NewSoftSerial myGPS(3, 2); // this one doesn't
Library Version
You can retrieve the version of the NewSoftSerial library by calling the static member library_version().
int ver = NewSoftSerial::library_version();
Resource Consumption
Linking the NewSoftSerial library to your application adds approximately 2000 bytes to its size.
Download
The latest version of NewSoftSerial is available here: NewSoftSerial12.zip. Note: don’t download this if you have Arduino 1.0 or later. As of 1.0, NewSoftSerial is included in the Arduino core (named SoftwareSerial).
Change Log
- initial version
- ported to Arduino 0013, included example sketch in package
- several important improvements: (a) support for 300, 1200, 14400, and 28800 baud (see caveats), (b) added bool overflow() method to test whether an RX buffer overflow has occurred, and (c) tuned RX and TX for greater accuracy at high baud rates 38.4K, 57.6K, and 115.2K.
- minor bug fixes — add .o file and objdump.txt to zip file for diagnostics.
- etracer’s inline assembler fix to OSX avr-gcc 4.3.0 interrupt handler bug added.
- ladyada’s new example sketch, fix to interrupt name, support for 328p.
- etracer’s workaround is now conditionally compiled only when avr-gcc’s version is less than 4.3.2.
- 8 MHz support and flush() and enable_timer0() methods added
- digitalread/write scrapped in favor of direct port I/O. Revised routines now get perfect RX up to 57.6K on 16MHz processors and 31.25K on 8MHz processors.
- inverted TTL signalling supported. 20MHz processors supported. Teensy and Teensy++ supported. New end() method and destructor added to clean up.
- added listen() method to explicitly activate ports.
- warn users about 1.0 conflict
Acknowledgements
Many thanks to David Mellis, who wrote the original SoftwareSerial, and to the multi-talented ladyada, whose work with AFSoftSerial is seminal. Ladyada also provided the “Goodnight, moon” example sketch, fixed a problem with the interrupt naming (see v6) and tested NSS with the 328p.
Thanks also to rogermm and several other forum users who have tested NewSoftSerial and given useful feedback.
The diligent analysis of forum user etracer yielded the root cause of a tricky problem with NSS on OSX. A bug in avr-gcc 4.3.0 causes the compiler to fail to generate the proper entry and exit sequences for certain interrupt handlers. etracer identified the problem and provided an inline workaround. etracer’s fix is in NSS 5.
User jin contributed a large body of work based on NSS and identified a potential problem that could result in data loss (fixed in NSS 5). jin also made a variant of NSS that supports 4-pin serial, with the additional pins providing a very nice RTS/CTS flow control. We may see this in NSS in the near future.
Thanks to Garret Mace, who contributed the delay tables for 20MHz processors and claims that he can send and receive at 115K baud. Cool!
Thanks to Paul Stoffregen, both for his fine work with Teensy and Teensy++, and for contributing some useful suggestions that help NewSoftSerial run on them without modification.
I appreciate any and all input.
Mikal Hart
February 15th, 2009 → 10:04 pm
[...] NewSoftSerial version 5 is available. A lot of people have been using this library — thanks! — but I really need to recognize the exceptional work of two contributors. [...]
February 20th, 2009 → 1:08 pm
[...] I posted the new library. [...]
March 2nd, 2009 → 1:46 pm
[...] ในรอบนี้ผมได้ใช้ newSoftwareSerial3 จะได้ลองด้วยว่า มีปัญหาไหม
March 11th, 2009 → 4:54 pm
[...] of the first things to do is download NewSoftSerial
June 9th, 2009 → 3:21 pm
[...] to the task at hand, which happened to be adding 3 lines of code: declaration of an instance of NewSoftSerial, calling the instance constructor with a baud rate, and a single call to pass the char from the [...]
August 1st, 2009 → 3:00 pm
[...] and the XBee module has a serial interface. So how does this really solve my problem? Enter NewSoftSerial, an updated version of the Arduino software serial library, which basically lets you drive a serial [...]
October 14th, 2009 → 1:38 pm
[...] is probably the coolest gift idea I’ve seen. Mikal, you rock. And also, thank you for NewSoftSerial. [...]
November 19th, 2009 → 3:36 pm
[...] way. Let’s move onto the software. Communication with the DS1616 is established using the NewSoftSerial library. Getting data is essentially a case of lots of bit banging. The DS1616 library [...]
December 14th, 2009 → 8:08 am
[...] So we started looking for a solution to overcome this tiny inconvenience. First we looked into a software serial but this didn’t work out, it was a bit too much for the arduino’s little processor to [...]
December 29th, 2009 → 6:59 am
[...] software serial port. I briefly thought about writing one, but then I found this great libary, the New SoftSerial. It is as simple to use as the original library, but unfortunately once I connect the RF receiver, [...]
January 20th, 2010 → 1:19 am
[...] developers for the great libraries, and to Mikal Hart in particular for his work on the TinyGPS and NewSoftSerial [...]
January 23rd, 2010 → 10:27 am
[...] このソースでは、PS2ライブラリとNewSoftSerialライブラリを利用しています。 コンパイルするには、これらのライブラリを有効にしておく必要があります。 [...]
February 27th, 2010 → 10:19 am
[...] as a well. The shield can be wired to any of the pins on the Arduino. Right now we’re using NewSoftSerial on pins 4 and 5. It can be attached to the hardware RX and TX pins, but interferes with [...]
February 27th, 2010 → 12:18 pm
[...] 急遽、Arduinoでシリアル通信をふたつやる必要が発生してホテルで開発。といっても手元にハードがないので、ほとんど勘でプログラムしているようなもの。 次の日現場で試すも、予想通り動かない。そりゃそうだ。 NewSoftwareSerialなんていう便利なものがあるのを後で知った。 [...]
March 27th, 2010 → 1:39 am
[...] chose the NewSoftSerial library to give access to the VDIP1. The first attempt was to use the AFSoftLibrary and it just [...]
April 5th, 2010 → 12:55 pm
[...] software running on the Arduino ATMEGA328 chip utilizes the wonderfully robust NewSoftSerial library for communicating with the EM-406a GPS module and the very convenient TinyGPS library for [...]
April 6th, 2010 → 1:33 am
[...] is available here. I borrowed from a couple of people’s Arduino libraries to get this done, notably NewSoftSerial from Arduiniana and the GPS Parsing code from the Arduino website for parsing the NMEA strings. [...]
May 15th, 2010 → 1:46 pm
[...] I had to use this library to communicate with the xbee from the arduino: http://arduiniana.org/libraries/newsoftserial/ [...]
May 31st, 2010 → 12:54 pm
[...] wird über die Serielle Schnittstelle angesteuert. Die werde ich wahrscheinlich über die NewSoftSerial Library [...]
May 31st, 2010 → 1:05 pm
[...] GPS Modul wird über die Serielle Schnittstelle angesteuert. Die werde ich wahrscheinlich über die NewSoftSerial Library [...]
June 22nd, 2010 → 4:47 pm
[...] metoda de a afla codul cartelei este de a utiliza biblioteca NewSoftSerial, disponibila gratuit aici. Fisierul zip se dezarhiveaza si se copiaza in folderul libraries al distributiei [...]
July 10th, 2010 → 3:59 pm
[...] updated the NewSoftSerial library from Arduiniana (thanks Mikal !) so that it takes 2 extra [...]
July 20th, 2010 → 1:19 am
[...] http://arduiniana.org/libraries/newsoftserial/ [...]
July 25th, 2010 → 11:34 am
[...] the TinyGPS library from Arduiniana downloaded and installed for it to work. They suggest using NewSoftSerial, but I couldn’t get that to work, so I scrapped that portion. Here’s my [...]
August 3rd, 2010 → 8:45 pm
[...] it as a fail and moved on, however last night when I set about writing the RFID read function using NewSoftSerial on the RFID I was getting nothing reported back back on the AVR, not a thing coming back from the [...]
August 10th, 2010 → 10:25 am
[...] http://arduiniana.org/libraries/newsoftserial/ http://www.sparkfun.com/commerce/product_info.php?products_id=8950 [...]
September 16th, 2010 → 11:37 pm
[...] devices. At this point you will need to install two libraries into the Arduino software – NewSoftSerial and TinyGPS. Extract the folders into the libraries folder within your arduino-001x [...]
September 17th, 2010 → 12:09 am
[...] this point you will need to install two libraries into the Arduino software – NewSoftSerial and TinyGPS. Extract the folders into the librariesfolder within [...]
October 6th, 2010 → 1:48 pm
[...] there is one more library – “NewSoftSerial”, which is free of these defects and, in addidion, handles inverted serial [...]
October 6th, 2010 → 2:05 pm
[...] NewSoftSerial [...]
October 12th, 2010 → 10:18 pm
[...] one on some other pins. Per the suggestion of some people on the Arduino forums, I decided to use NewSoftSerial to do the communication. Being interrupt driven, it was much more efficient than the older [...]
December 18th, 2010 → 7:36 pm
[...] the code you will need a very useful NewSoftSerial library, that, among other things, allows you to assign TX and RX on other pins then 0 and 1 and that way [...]
January 11th, 2011 → 7:09 am
[...] up would be to try and use the awesome NewSoftSerial library by Mikal Hart to communicate with the Bluetooth Bee by emulating the UART [...]
January 18th, 2011 → 5:56 pm
[...] a software perspective we will need the NewSoftSerial Arduino library, so please download and install that before moving [...]
January 28th, 2011 → 10:06 pm
[...] goes step by step how to connect Cellular shield to Arduino mega and communicate to it by using newsoftserial Arduino library. Whole process steps are monitored in terminal window, so it is easy to follow [...]
February 4th, 2011 → 3:03 pm
[...] NewSoftSerial library [...]
February 22nd, 2011 → 11:07 pm
[...] also need the NewSoftSerial library installed in your Arduino sketchbook’s library [...]
March 18th, 2011 → 5:17 am
[...] GLCD that I bought (without knowing ANYTHING about it beforehand I might add). The code uses the NewSoftSerial library which apparently does wonders, but as of yet has not been validated as the code assumes a 9V [...]
March 21st, 2011 → 9:44 am
[...] the pin 4 and 5 there aren’t problems to upload the sketch but the maximum baudrate for NewSoftSerial (the serial library) is 57600. We performed a GSM library to controll easly the module. The GSM [...]
March 23rd, 2011 → 4:40 am
[...] forget the 10k ohm pull-down resistor). You will need to install the SdFAT library, NewSoftSerial library, TinyGPS library and the SdFat library if not already [...]
May 9th, 2011 → 8:54 am
[...] of just the standard Serial interface, see the links below for that too. You’ll also need NewSoftSerial of course and the Flash library which I’ve used to decrease memory usage. Follow the [...]
May 17th, 2011 → 2:01 am
[...] a single wire, which again, keeps the number of wires from the Arduino down. I’m using the NewSoftSerial library to talk to it, which makes life [...]
May 25th, 2011 → 10:27 am
[...] you can use multiple serial “ports”, that are actually digital I/O lines, by using the NewSoftSerial library. This works exactly like the Serial library, but you can read from multiple pins, as long as you [...]
June 23rd, 2011 → 8:59 pm
[...] it’s easier to pick which Serial port to use; Serial, Serial1, etc. AND support for the NewSoftSerial library for creating software serial ports on any pin. Inside the download zip file are two versions of the [...]
July 3rd, 2011 → 11:28 am
[...] neat thing is the NewSoftSerial library for Adruino, allowing you to turn any set of pins into additional RX/TX pins with free to set baud [...]
July 13th, 2011 → 7:09 am
[...] de instalar la librería NewSoftSerial pude compilar e instalar el Arduino Firmware en mi placa. A continuación necesitaba descargarme [...]
July 17th, 2011 → 8:51 pm
[...] a bit of this code at the end of this journal entry. The “NewSoftSerial” library http://arduiniana.org/libraries/newsoftserial/ was extremely easy to get working (code example [...]
July 21st, 2011 → 1:18 am
[...] Modul per Software-UART? Bitte einen Link oder Hinweis wo ich nachlesen kann. danke Schaust du hier __________________ FHZ1300 | 2x JeeLink | AVR-NETIO | FS20 | 1-Wire | 2x XBEE Pro | 4x XBEE 2.5 [...]
July 31st, 2011 → 11:07 pm
[...] actually really easy, using some code called NewSoftSerial (available from this site, at the ‘Download’ subheading). This software is much like your Serial device you use on the Arduino, but it’s in software [...]
August 20th, 2011 → 7:37 pm
[...] provided by the software library “NewSoftSerial”. The library can be downloaded from:: http://arduiniana.org/libraries/NewSoftSerial/. Since the communications port is created using software any of the Arduino port pins can be used. [...]
August 28th, 2011 → 12:48 pm
[...] NewSoftSerial library from Mikal Hart: http://arduiniana.org/libraries/newsoftserial/ [...]
August 28th, 2011 → 7:03 pm
[...] via jumper na própria shield. Para comunicação com essa Bee, é necessário o uso da biblioteca NewSoftwareSerial, permitindo fazer que dois pinos digitais se tornem mais uma [...]
September 6th, 2011 → 4:44 pm
[...] NewSoftSerial lib was used for communicating over serial using an IO [...]
September 8th, 2011 → 4:21 am
[...] 1– télécharger la bibliothèque NewSoftSerial pour Arduino NewSoftSerial10c.zip. Des explications et exemples plus détaillés concernant cette bibliothèque sur cette page (http://arduiniana.org/libraries/newsoftserial/). [...]
September 21st, 2011 → 11:47 pm
[...] そのためソフトウェアシリアルを再現させたライブラリがありますのでそれを利用します。とはいっても標準ライブラリのSoftwareSerialは利用しません。高機能で速度もでるようになったNewSoftSerialを利用します。 [...]
October 31st, 2011 → 2:10 am
[...] NewSoftSerial Library - http://arduiniana.org/libraries/NewSoftSerial/ [...]
December 25th, 2011 → 6:30 pm
[...] arduino remotely can be found here. For communication over XBee the Arduino appears to need the NewSoftSerial library. LD_AddCustomAttr("AdOpt", "1"); LD_AddCustomAttr("Origin", "other"); [...]
December 25th, 2011 → 6:36 pm
[...] for attacheinterupt() are 2 and 3. The GPS shield uses digital 2 and 3 for GPS communication using NewSoftSerial. So I tried moving the GPS to other pins, 8 and 9 worked. Now pins 2 and 3 are free for my [...]
December 25th, 2011 → 6:36 pm
[...] arduino remotely can be found here. For communication over XBee the Arduino appears to need the NewSoftSerial library. [...]
January 24th, 2012 → 1:46 am
[...] Dans ce projet vous pouvez remarquer que je suis obligé d’utiliser deux port série, un à 9600 bauds pour l’écran lcd, et un autre à 2400 bauds pour le lectuer RFID. Normalement il me faudrait une mega (qui possède 3 port série) pour faire ce projet en hardware, mais il existe aussi des librairies Serial software ! C’est pourquoi je vais utiliser la librairie NewSoftSerial disponible ici : http://arduiniana.org/libraries/newsoftserial/ [...]
February 4th, 2012 → 9:10 pm
[...] went through each error, and tried to resolve it myself. Some were easy. The "NewSoftSerial" libraries were incorporated into the core libraries, and they replaced the default SoftwareSerial [...]
March 8th, 2012 → 10:30 am
[...] speed if you need a second or third (or fourth) port. On the Uno, you can do similarly using the NewSoftSerial library; however, software is slower, and if your program is pushing the limits, you may find a hardware [...]
August 5th, 2012 → 6:55 pm
[...] already. I found this wall of text which I managed to digest down into this gist (and updated it thanks to these notes) which you can see running in the above [...]
August 6th, 2012 → 1:54 am
[...] そして、シリアル通信のテストに利用したArduinoのソースです。 NewSoftSerial(Arduinoライブラリ)を利用しています。 [...]
August 8th, 2012 → 6:37 pm
[...] DroneCell and the GPS simultaneously. I stumbled upon this interesting behavior in NewSoftSerial. NewSoftSerial*|*Arduiniana. I seem to at least have something to go on… Using Multiple Instances There has been [...]
August 13th, 2012 → 1:13 pm
[...] eso es lo que es capaz de hacer la librería NewSoftSerial (más documentación aquí). Usándola podremos emplear el resto de pines como puertos serial, ya [...]
August 16th, 2012 → 2:06 pm
[...] in the download is TimeGPS.pde, but it’s a touch outdated now that Mikal Hart’s NewSoftSerial library has been rolled up into the core (since 1.0) and renamed SoftwareSerial. The problem I had [...]
August 21st, 2012 → 10:42 pm
[...] GPS模块与Arduino的通讯程序 [...]
October 26th, 2012 → 1:58 pm
[...] tried using the SoftSerial (or the NewSoftSerial) library but ran into data corruptions even at the low speeds, so I decided to look for ways to get another [...]
November 6th, 2012 → 8:58 am
[...] the example code. There some issues on the Arduino library SoftwareSerial, which changed to the NewSoftSerial once in a while. Share this:TwitterFacebookLike this:LikeBe the first to like this. Categories [...]
November 29th, 2012 → 12:22 pm
[...] - http://arduiniana.org/libraries/NewSoftSerial/ Share this: This entry was posted in AT Physics Class and tagged arduino, IR, proximity [...]
March 17th, 2013 → 2:14 pm
[...] NewSoftSerial Library - Required for the example sketches. Sets up a second (third, fourth,…) serial port on the Arduino. [...]
March 17th, 2013 → 2:19 pm
[...] NewSoftSerial Library - Required for the example sketches. Sets up a second (third, fourth,…) serial port on the Arduino. [...]
March 21st, 2013 → 11:30 pm
[...] from this project (bluetooth_chat_LCD.pde attached below) – NewSoftSerial library from Mikal Hart: http://arduiniana.org/libraries/newsoftserial/ – Eclipse – Android Development Kit (explicitly follow all of Google’s installation [...]
June 4th, 2013 → 8:56 pm
[...] http://arduiniana.org/libraries/newsoftserial/ いいね:いいね 読み込み中… カテゴリー Arduino, [...]
June 4th, 2013 → 9:03 pm
[...] http://arduiniana.org/libraries/newsoftserial/ いいね:いいね 読み込み中… カテゴリー Arduino, [...]
August 30th, 2013 → 6:11 pm
[...] to the GPS receiver, I’d be writing to the data logger serially. I found information here about running multiple devices serially – the short answer is that you have to access the serial [...]
September 1st, 2013 → 8:29 am
[...] kB). I used this method and solved my intermitting (and making me crazy…) problems 2) Using PString library, added by NewSoftSerial and put in official version of Arduino. It is very handy: it hands you a [...]
October 7th, 2013 → 3:29 pm
[...] developers for the great libraries, and to Mikal Hart in particular for his work on the TinyGPS and NewSoftSerial [...]
October 19th, 2013 → 4:42 am
[...] , les ports 12 & 13 de l’arduino sont utilisés (liaison arduino-module via la classe newSoftSerial) et ne permettent pas l’emploi du shield Ethernet sur une platine « arduino [...]
December 3rd, 2013 → 6:35 pm
[...] I rewrote the logger to use the Arduino’s internal UART, since — lovely though NewSoftSerial may be — it causes millis() to report wildly inaccurate times at low bit rates. I recorded a [...]
April 22nd, 2014 → 1:23 am
[...] require that protocol. The version of SoftwareSerial included in 1.0 and later is based on the NewSoftSerial library by Mikal [...]
April 22nd, 2014 → 1:59 am
[...] This requires the TinyGPS and NewSoftSerial libraries from Mikal Hart: http://arduiniana.org/libraries/TinyGPS and http://arduiniana.org/libraries/newsoftserial/ [...]
May 25th, 2014 → 8:46 am
[...] BT1 pin settings (which are done in hardware), the receiver is totally configuration free. I used NewSoftSerial library in the code below. The main loop simply print out the incoming bit stream. You may also use [...]
June 7th, 2014 → 8:35 am
[...] newsoftserial should be downloaded from the internet and the folder inside the zip put in (path to where you [...]
July 8th, 2014 → 6:47 am
[...] szczęście jest jeszcze jedna biblioteka „NewSoftSerial”, która jest pozbawiona tych wad i na dodatek obsługuje zanegowany sygnał [...]
July 24th, 2014 → 12:34 am
[...] Download the TrueRandom http://code.google.com/p/tinkerit/wiki/TrueRandom, NewSoftSerial http://arduiniana.org/libraries/newsoftserial/, and Twitter [...]
October 28th, 2014 → 5:03 am
[...] NewSoftSerial [...]
December 10th, 2014 → 6:36 am
[...] NewSoftwareSerial: http://arduiniana.org/libraries/newsoftserial/ [...]
February 13th, 2015 → 3:21 am
[...] Download the TrueRandom http://code.google.com/p/tinkerit/wiki/TrueRandom, NewSoftSerial http://arduiniana.org/libraries/newsoftserial/, and Twitter [...]
April 4th, 2015 → 12:34 am
[...] NewSoftSerial (Arduino IDE 1.0 이후 버전만 지원) – Serial 모듈별로 인스턴스를 생성해서 여러개를 사용할 수 있지만 한번에 하나의 인스턴스만 전송/수신 할 수 있습니다. 다른 라이브러리와의 충돌 가능성도 약간 있는 듯 합니다. http://arduiniana.org/libraries/newsoftserial/ [...]
October 8th, 2017 → 6:14 am
[...] to the GPS receiver, I’d be writing to the data logger serially. I found information here about running multiple devices serially – the short answer is that you have to access the serial [...]
October 30th, 2018 → 10:14 pm
[...] This project consists of several ‘modules’ that you need to hook up to the Arduino and test in advance. First hook-up the RF reader. You can use the 5v output of the Arduino to power it, and a digital port (I used 2) to get the signal. The RDM630 that I used also has pins for a led that I don’t use. It also has an RX pin to send info back to the RF reader, but I don’t use that either. Hook-up your antenna, get a tag and use the serial monitor of the Arduino to see if it’s detected. Now you can also start working on improving the antenna by trying adding or removing turns, trying different shapes et cetera. Power the Adruino with the 9v power supply, not just USB because at least in my case that didn’t work. You can download the file named ‘rfid3.pde’ to test. The code requires NewSoftSerial.h which can be obtained here [...]